package Day014_Lambda表达式_Stream流.dem01_Lambda表达式.demo2_Lambda表达式概述;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * @author zhangyan
 * @date 2020/5/5 10:05
 */
/*
    省略规则:
        1. 小括号内参数的类型可以省略；
        2. 如果小括号内 有且仅有一个 参，则小括号可以省略；
        3. 如果大括号内 有且仅有一个 语句，则无论是否有返回值，都可以省略大括号、return关键字及语句分号
*/
public class Test_Lambda省略格式 {
    public static void main(String[] args) {

        //1.线程案例
        //标准格式
        Thread t1 = new Thread(() -> { System.out.println("Lambda表达式标准格式..."); });
        t1.start();

        //省略格式
        Thread t2 = new Thread(() -> System.out.println("Lambda表达式省略格式..."));
        t2.start();

        //2.比较器案例
        List<Integer> list = new ArrayList<>();
        Collections.addAll(list, 500, 100, 300, 200, 400);
        //标准格式
        Collections.sort(list, (Integer o1, Integer o2) -> { return o2 - o1; });
        System.out.println("降序排序:" + list);

        //省略格式
        Collections.sort(list,(o1,o2)->o1 - o2);
        System.out.println("升序排序:" + list);
    }
}
